package org.summer.lawyer.domain.vo.lawfirm;

import io.github.linpeilie.annotations.AutoMapper;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.summer.common.mybatis.core.domain.BaseEntitySearch;
import org.summer.lawyer.domain.LawFirm;

import java.io.Serial;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 律所信息视图对象 law_firm
 *
 * @author summer
 */
@Schema(title ="律所信息视图对象 law_firm", description = "律所信息视图对象 law_firm")
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = LawFirm.class)
public class LawFirmVo extends BaseEntitySearch {

    @Serial
    private static final long serialVersionUID = 535863686741287242L;

    /**
     * 律所ID
     */
    @Schema(title = "lawFirmId", type = "Long", description = "律所ID")
    private Long lawFirmId;

    /**
     * 律所名称
     */
    @Schema(title = "lawFirmName", type = "String", description = "律所名称")
    private String lawFirmName;

    /**
     * 律所logo
     */
    @Schema(title = "lawFirmLogo", type = "String", description = "律所logo")
    private String lawFirmLogo;

    /**
     * 律所类型（1=律师，2=律所）
     */
    @Schema(title = "lawFirmType", type = "String", description = "律所类型（1=律师，2=律所）")
    private String lawFirmType;

    /**
     * 律所状态（0=待审核，1=审核通过，2=冻结）
     */
    @Schema(title = "status", type = "String", description = "律所状态（0=待审核，1=审核通过，2=冻结）")
    private String status;

    /**
     * 律所简介
     */
    @Schema(title = "lawFirmDesc", type = "String", description = "律所简介")
    private String lawFirmDesc;

    /**
     * 律所地址
     */
    @Schema(title = "lawFirmAddress", type = "String", description = "律所地址")
    private String lawFirmAddress;

    /**
     * 企业名称
     */
    @Schema(title = "companyName", type = "String", description = "企业名称")
    private String companyName;

    /**
     * 营业执照
     */
    @Schema(title = "license", type = "String", description = "营业执照")
    private String license;

    /**
     * 社会信用代码
     */
    @Schema(title = "creditCode", type = "String", description = "社会信用代码")
    private String creditCode;

    /**
     * 公司地址
     */
    @Schema(title = "companyAddress", type = "String", description = "公司地址")
    private String companyAddress;

    /**
     * 是否企业认证 0未认证，1已认证
     */
    @Schema(title = "companyAuth", type = "String" ,description = "是否企业认证 0未认证，1已认证")
    private String companyAuth;

    /**
     * 省
     */
    @Schema(title = "province", type = "String", description = "省")
    private String province;

    /**
     * 市
     */
    @Schema(title = "city", type = "String", description = "市")
    private String city;

    /**
     * 区
     */
    @Schema(title = "district", type = "String", description = "区")
    private String district;

    /**
     * 综合评分
     */
    @Schema(title = "rating", type = "BigDecimal", description = "综合评分")
    private BigDecimal rating;

    /**
     * 管理员ID
     */
    @Schema(title = "adminUserId", type = "Long", description = "管理员ID")
    private Long adminUserId;

    /**
     * 推荐首页(0不推荐，1推荐）
     */
    @Schema(title = "curated", type = "String", description = "推荐首页(0不推荐，1推荐）")
    private String curated;

    /**
     * 粉丝数量
     */
    @Schema(title = "followers", type = "Integer", description = "粉丝数量")
    private Integer followers;

    /**
     * 擅长
     */
    @Schema(title = "special", type = "String", description = "擅长")
    private String special;

    /**
     * 资格认证（0未认证，1已认证）
     */
    @Schema(title = "certification", type = "String", description = "资格认证（0未认证，1已认证）")
    private String certification;

    /**
     * 执业开始时间
     */
    @Schema(title = "yearServiceTime", type = "Date", description = "执业开始时间")
    private Date yearServiceTime;

    /**
     * 执业时长(年）
     */
    @Schema(title = "years", type = "Integer", description = "执业时长")
    private Integer years;

    /**
     * 联系电话
     */
    @Schema(title = "contactPhone", type = "String", description = "联系电话")
    private String contactPhone;

    /**
     * 联系人
     */
    @Schema(title = "nickname", type = "String", description = "联系人")
    private String nickname;

    /**
     * 账号
     */
    @Schema(title = "account", type = "String", description = "登录账号")
    private String account;

    /**
     * 注册手机号
     */
    @Schema(title = "phoneNumber", type = "String", description = "注册手机号")
    private String phoneNumber;

    /**
     * 标签
     */
    @Schema(title = "lawFirmTag", type = "String", description = "标签")
    private String lawFirmTag;

    /**
     * 省ID
     */
    @Schema(title = "provinceId", type = "String", description = "省ID")
    private String provinceId;

    /**
     * 市ID
     */
    @Schema(title = "cityId", type = "String", description = "市ID")
    private String cityId;

    /**
     * 区ID
     */
    @Schema(title = "districtId", type = "String", description = "区ID")
    private String districtId;

    /**
     * 创建时间
     */
    @Schema(title = "createTime", type = "Date", description = "创建时间")
    private Date createTime;

    /**
     * 是否关注（0未关注，1已关注）
     */
    @Schema(title = "follow", type = "Date", description = "是否关注（0未关注，1已关注）")
    private String follow;

    @Schema(title = "wxUserId", type = "Long", description = "微信用户ID")
    private Long wxUserId;


    /**
     * 执业年限
     */
    @Schema(title = "practice", type = "Integer", description = "执业年限")
    private Integer practice;

}